///////////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
#ifndef __LIGHT_H__
#define __LIGHT_H__

#include	<MGLib.h>

class Light
{
public:

	Light()
	{
		m_color[0] = 0;
		m_color[1] = 0;
		m_color[2] = 0;
		m_color[3] = 0;
	}

	virtual void	Update() = 0;
	virtual void	Render() = 0;
	virtual void	RenderDebug(GPUProgram* shader) {};


	inline virtual void		SetColor( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha )
	{
		m_color[0] = red;
		m_color[1] = green;
		m_color[2] = blue;
		m_color[3] = alpha;
	}

	inline GLfloat*	GetColor()
	{
		return m_color;
	}

	inline void		SetShader( GPUProgram* shader )
	{
		m_shader = shader;
	}

protected:

	GLfloat m_color[4];

	GPUProgram*	m_shader;

};

#endif	//__LIGHT_H__
//-----------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////
